home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
setvmode
/
src
/
setvmode.c
Wrap
C/C++ Source or Header
|
1993-07-08
|
2KB
|
109 lines
/***********
*
* setvmode.c
*/
#include <egb.h>
#include <stdio.h>
#include <stdlib.h>
char work[1536];
unsigned char para[512] = {
15,0,0,0,
1,0,0,0, 255, 0, 0, 0,
2,0,0,0, 0, 255, 0, 0,
3,0,0,0, 255, 255, 0, 0,
4,0,0,0, 0, 0, 255, 0,
5,0,0,0, 255, 0, 255, 0,
6,0,0,0, 0, 255, 255, 0,
7,0,0,0, 255, 255, 255, 0,
8,0,0,0, 255, 255, 255, 0,
9,0,0,0, 255, 0, 0, 0,
10,0,0,0, 0, 255, 0, 0,
11,0,0,0, 255, 255, 0, 0,
12,0,0,0, 0, 0, 255, 0,
13,0,0,0, 255, 0, 255, 0,
14,0,0,0, 0, 255, 255, 0,
15,0,0,0, 255, 255, 255, 0
};
void main(int argc, char **argv)
{
int mode = 3, mode2 = 3, err = 0;
EGB_init(work,1536);
if (argc > 1) {
mode = atoi(argv[1]);
if (mode < 1) {
mode = 3;
}
EGB_resolution(work, 0, mode);
if (mode <12) {
if (argc > 2) {
mode2 = atoi(argv[2]);
if (mode2 < 1) {
mode2 = 3;
}
}
else {
mode2 = mode;
}
switch (mode) {
case 1:
if (mode2 != 1) {
err = 1;
}
break;
case 2:
if (mode2 != 2) {
err = 1;
}
break;
case 3:
case 5:
case 10:
if ((mode2 != 3) && (mode2 != 5) && (mode2 != 10)) {
err = 1;
}
break;
case 4:
case 6:
if ((mode2 != 4) && (mode2 != 6)) {
err = 1;
}
break;
case 7:
case 9:
if ((mode2 != 7) && (mode2 != 9)) {
err = 1;
}
break;
case 8:
case 11:
if ((mode2 != 8) && (mode2 != 11)) {
err = 1;
}
break;
}
if (err > 0) {
puts("画面設定に誤りがあります。 両画面同じモードに設定します。");
mode2 = mode;
}
EGB_resolution(work, 1, mode2);
}
}
if (mode <= 4) {
EGB_writePage(work, 0);
EGB_palette(work, 1, (char *)para);
}
if (mode2 <= 4) {
EGB_writePage(work, 1);
EGB_palette(work, 1, (char *)para);
EGB_writePage(work, 0);
}
puts("\x1b*");
}